<html>
<head><meta charset="utf-8"><title>deepbinding proc macros · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html">deepbinding proc macros</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="212239666"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212239666" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212239666">(Oct 04 2020 at 20:17)</a>:</h4>
<p><span class="user-mention" data-user-id="211727">@Jonas Schievink</span> fwiw I <em>think</em> my run is still hanging with a deepbind <a href="https://github.com/rust-lang/rust/issues/76980#issuecomment-703307978">https://github.com/rust-lang/rust/issues/76980#issuecomment-703307978</a></p>



<a name="212239731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212239731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212239731">(Oct 04 2020 at 20:18)</a>:</h4>
<p>Huh, weird. It's working fine for me (and passes the test suite).</p>



<a name="212239735"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212239735" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212239735">(Oct 04 2020 at 20:18)</a>:</h4>
<p>do you have a patch up yet? Maybe I'm changing the wrong thing</p>



<a name="212239742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212239742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212239742">(Oct 04 2020 at 20:19)</a>:</h4>
<p>Are you using the hypermine repo or the minimized code?</p>



<a name="212239748"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212239748" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212239748">(Oct 04 2020 at 20:19)</a>:</h4>
<p>minimized</p>



<a name="212239751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212239751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212239751">(Oct 04 2020 at 20:19)</a>:</h4>
<p>me too</p>



<a name="212239821"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212239821" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212239821">(Oct 04 2020 at 20:20)</a>:</h4>
<p>let me try again</p>



<a name="212239826"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212239826" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212239826">(Oct 04 2020 at 20:20)</a>:</h4>
<p>how long does it take for you?</p>



<a name="212239831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212239831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212239831">(Oct 04 2020 at 20:21)</a>:</h4>
<p>Opened <a href="https://github.com/rust-lang/rust/pull/77545">https://github.com/rust-lang/rust/pull/77545</a></p>



<a name="212239837"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212239837" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212239837">(Oct 04 2020 at 20:21)</a>:</h4>
<p>clean rebuld is 4.25s</p>



<a name="212240239"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240239" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240239">(Oct 04 2020 at 20:30)</a>:</h4>
<p><span class="user-mention" data-user-id="211727">@Jonas Schievink</span> and you're reproducing a fix with a stage 1 build?</p>



<a name="212240248"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240248" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240248">(Oct 04 2020 at 20:30)</a>:</h4>
<p>yeah</p>



<a name="212240254"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240254" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240254">(Oct 04 2020 at 20:30)</a>:</h4>
<p>huh</p>



<a name="212240260"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240260" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240260">(Oct 04 2020 at 20:30)</a>:</h4>
<p>It definitely hangs for me</p>



<a name="212240405"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240405" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240405">(Oct 04 2020 at 20:33)</a>:</h4>
<div class="codehilite"><pre><span></span><code>#0  0x00007fd853798838 in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
(gdb) bt
#0  0x00007fd853798838 in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#1  0x00007fd853798aa6 in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#2  0x00007fd853798f99 in _Unwind_RaiseException () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#3  0x00007fd85021878c in __cxa_throw () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fd85020f1e8 in std::__throw_bad_cast() () from /lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007fd8502a1fd5 in std::ostream&amp; std::ostream::_M_insert&lt;unsigned long&gt;(unsigned long) ()
   from /lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007fd8490da687 in spvtools::(anonymous namespace)::to_string(unsigned int) ()
   from /home/mark/repro-76980/target/debug/deps/libvk_shader_macros_impl-cf4b048c4299a1f1.so
#7  0x00007fd8490db33d in spvtools::FriendlyNameMapper::SaveName(unsigned int, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) ()
</code></pre></div>



<a name="212240495"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240495" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240495">(Oct 04 2020 at 20:34)</a>:</h4>
<p><span class="user-mention" data-user-id="211727">@Jonas Schievink</span> did you reproduce it hanging before you applied the patch?</p>



<a name="212240527"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240527" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240527">(Oct 04 2020 at 20:35)</a>:</h4>
<p>yeah</p>



<a name="212240529"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240529" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240529">(Oct 04 2020 at 20:35)</a>:</h4>
<p>oh, but only on nightly</p>



<a name="212240534"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240534" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240534">(Oct 04 2020 at 20:35)</a>:</h4>
<p>not master</p>



<a name="212240542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240542">(Oct 04 2020 at 20:35)</a>:</h4>
<p>I wonder if it's e.g. how you're building LLVM</p>



<a name="212240546"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240546" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240546">(Oct 04 2020 at 20:35)</a>:</h4>
<p>are you using the download-from-ci stuff?</p>



<a name="212240549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240549">(Oct 04 2020 at 20:35)</a>:</h4>
<p>yeah, I use system LLVM</p>



<a name="212240551"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240551" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240551">(Oct 04 2020 at 20:35)</a>:</h4>
<p>no, not that</p>



<a name="212240552"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240552" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240552">(Oct 04 2020 at 20:35)</a>:</h4>
<p>oh, so that might be the problem</p>



<a name="212240592"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240592" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240592">(Oct 04 2020 at 20:36)</a>:</h4>
<p>because system LLVM would (presumably) not have the symbol clash or whatever we're seeing, since it'd link the same as the proc macro</p>



<a name="212240601"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240601" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240601">(Oct 04 2020 at 20:36)</a>:</h4>
<p>i.e., to the same c++ stdlib</p>



<a name="212240613"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240613" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240613">(Oct 04 2020 at 20:36)</a>:</h4>
<p>if you're on x86_64-unknown-linux-gnu the download-ci-llvm option should work just fine fwiw</p>



<a name="212240642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240642">(Oct 04 2020 at 20:37)</a>:</h4>
<p>I'll try with that enabled</p>



<a name="212240732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240732">(Oct 04 2020 at 20:39)</a>:</h4>
<p>yeah I've tested with stage 2 and a ci llvm and it still breaks, going to see if in-tree llvm does the same, as well as start a try build</p>



<a name="212240803"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212240803" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212240803">(Oct 04 2020 at 20:40)</a>:</h4>
<p>looks like CI is also failing on some fulldeps test</p>



<a name="212241089"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241089" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Notification Bot <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241089">(Oct 04 2020 at 20:46)</a>:</h4>
<p>This topic was moved here from <a class="stream-topic" data-stream-id="241545" href="/#narrow/stream/241545-t-release/topic/1.2E47.20release">#t-release &gt; 1.47 release</a> by <span class="user-mention silent" data-user-id="116122">simulacrum</span></p>



<a name="212241096"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241096" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241096">(Oct 04 2020 at 20:47)</a>:</h4>
<p><span class="user-mention" data-user-id="211727">@Jonas Schievink</span> so I cannot reproduce with a non-CI llvm, I suspect maybe it's the shared linking? trying that now</p>



<a name="212241112"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241112" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241112">(Oct 04 2020 at 20:47)</a>:</h4>
<p>well, static cpp std, and then link-shared if that doesn't reproduce it</p>



<a name="212241155"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241155" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241155">(Oct 04 2020 at 20:48)</a>:</h4>
<p>when rustc LLVM uses the system libstdc++, that should be fine with the proc macro</p>



<a name="212241165"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241165" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241165">(Oct 04 2020 at 20:48)</a>:</h4>
<p>static linking that might still be fine, since the versions match</p>



<a name="212241168"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241168" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241168">(Oct 04 2020 at 20:48)</a>:</h4>
<p>I think when we download from CI, we're probably using a different libstdc++</p>



<a name="212241170"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241170" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241170">(Oct 04 2020 at 20:48)</a>:</h4>
<p>right</p>



<a name="212241171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241171">(Oct 04 2020 at 20:48)</a>:</h4>
<p>(or when using a CI-built rustc locally)</p>



<a name="212241182"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241182" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241182">(Oct 04 2020 at 20:49)</a>:</h4>
<p>I agree that IPC or similar is the right long-term (e.g., maybe compiling to wasm and running them there would be better) but definitely not a beta-backportable change</p>



<a name="212241244"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241244" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241244">(Oct 04 2020 at 20:50)</a>:</h4>
<p>Last time we tried RPC even using another thread for proc macros turned out too slow</p>



<a name="212241252"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241252" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241252">(Oct 04 2020 at 20:51)</a>:</h4>
<p>wasm is a neat idea, but might not be possible for cases like this shader library</p>



<a name="212241308"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241308" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241308">(Oct 04 2020 at 20:52)</a>:</h4>
<p><code>dlmopen</code> is another possibility, but that's also a GNU extension</p>



<a name="212241373"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241373" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241373">(Oct 04 2020 at 20:54)</a>:</h4>
<p>we could also try to isolate the c++ library we build llvm with somehow? I don't know anything about that though</p>



<a name="212241379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241379">(Oct 04 2020 at 20:54)</a>:</h4>
<p>e.g. mangling the symbols</p>



<a name="212241402"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241402" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241402">(Oct 04 2020 at 20:55)</a>:</h4>
<p>do we know what broke from beta to stable though?</p>



<a name="212241404"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241404" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241404">(Oct 04 2020 at 20:55)</a>:</h4>
<p>er, stable to beta?</p>



<a name="212241408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241408">(Oct 04 2020 at 20:55)</a>:</h4>
<p>like, did LLVM just happen to start using this particular function?</p>



<a name="212241451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241451">(Oct 04 2020 at 20:56)</a>:</h4>
<p>don't know, I only hypothesized that this was the issue, not confirmed</p>



<a name="212241526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241526">(Oct 04 2020 at 20:59)</a>:</h4>
<p>it's quite possible that we've been clashing symbols all along, and just got lucky that it worked</p>



<a name="212241541"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241541" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241541">(Oct 04 2020 at 20:59)</a>:</h4>
<p>hm, so in theory, one fix is to disable statically linking the c++ standard library and expect one on the system</p>



<a name="212241542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241542">(Oct 04 2020 at 20:59)</a>:</h4>
<p>right?</p>



<a name="212241591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241591">(Oct 04 2020 at 21:00)</a>:</h4>
<p>(not saying we <em>want</em> to do that, but it is one option)</p>



<a name="212241597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241597">(Oct 04 2020 at 21:00)</a>:</h4>
<p>if we only cared about newer systems</p>



<a name="212241605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241605">(Oct 04 2020 at 21:00)</a>:</h4>
<p>ah, right :/</p>



<a name="212241845"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241845" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241845">(Oct 04 2020 at 21:07)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span>  another thing to try is <code>RTLD_NOW</code> instead of lazy</p>



<a name="212241847"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241847" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241847">(Oct 04 2020 at 21:07)</a>:</h4>
<p>rust-analyzer uses <code>RTLD_NOW | RTLD_DEEPBIND</code></p>



<a name="212241908"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241908" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241908">(Oct 04 2020 at 21:09)</a>:</h4>
<p>hm, I do not think that fixed it, but trying a few more things</p>



<a name="212241913"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241913" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241913">(Oct 04 2020 at 21:09)</a>:</h4>
<p>well, rather, that literally rather than via env variable</p>



<a name="212241914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241914">(Oct 04 2020 at 21:09)</a>:</h4>
<p>(with a custom <code>RTLD_DEEPBIND</code> definition instead of libc's, eek)</p>



<a name="212241963"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241963" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241963">(Oct 04 2020 at 21:10)</a>:</h4>
<p>they seem to match on x86_64-unknown-linux-gnu at least though</p>



<a name="212241966"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241966" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241966">(Oct 04 2020 at 21:10)</a>:</h4>
<p>I think only mips is different, 0x10</p>



<a name="212241976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212241976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212241976">(Oct 04 2020 at 21:11)</a>:</h4>
<p>and I don't expect that flag to work on non-linux-gnu</p>



<a name="212242041"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212242041" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212242041">(Oct 04 2020 at 21:13)</a>:</h4>
<p>I think Windows is probably immune to this, since they bind symbols at link time</p>



<a name="212242043"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212242043" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212242043">(Oct 04 2020 at 21:13)</a>:</h4>
<p>don't know about MacOS</p>



<a name="212242046"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212242046" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212242046">(Oct 04 2020 at 21:13)</a>:</h4>
<p>but all ELF targets will probably have issues</p>



<a name="212242379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212242379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212242379">(Oct 04 2020 at 21:22)</a>:</h4>
<p>Mach-O has support for two level namespaces. This means that all symbols are annotated with the dylib they are imported from. This means that there can be no conflicts between multiple libstdc++ versions I think, or at least when two level namespaces are not disabled.</p>



<a name="212242768"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212242768" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212242768">(Oct 04 2020 at 21:34)</a>:</h4>
<p>hm now I managed to do something that has my rustc stuck in reclaiming stacks</p>



<a name="212243284"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212243284" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212243284">(Oct 04 2020 at 21:50)</a>:</h4>
<p>you could try dlmopen to be extra sure.</p>



<a name="212243299"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212243299" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212243299">(Oct 04 2020 at 21:51)</a>:</h4>
<p>but with that the loaded thing gets its own e.g. allocator too so you cannot just free things that you got from the other side.</p>



<a name="212243618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/deepbinding%20proc%20macros/near/212243618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/deepbinding.20proc.20macros.html#212243618">(Oct 04 2020 at 22:01)</a>:</h4>
<p>dlmopen seems to produce hangs in __reclaim_stacks, though maybe I'm using it wrong</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>